草庐IT

c++ - CoInitializeEx 用于 boost::test::unit_test

全部标签

unit-testing - golang 字符串 channel 发送/接收不一致

新的去。我正在使用1.5.1。我正在尝试根据传入channel积累单词列表。但是,我的输入channel(wdCh)在测试期间有时会得到空字符串("")。我很困惑。在将空字符串的累积计数添加到我的map之前,我宁愿不对它进行测试。对我来说感觉像是一个hack。packageaccumulatorimport("fmt""github.com/stretchr/testify/assert""testing")varwordsmap[string]intfuncAccumulate(wdChchanstring,closeChchanbool){words=make(map[string

unit-testing - Go - 测试函数相等性

因此,根据我的阅读,您无法在Go中测试函数是否相等,但我正在尝试解决测试用例问题,因此重构此问题的任何帮助都会有所帮助。我有一个构造函数,我正在向它传递一些配置值。基于这些配置,它将另一个构造函数分配给结构的成员。后来,在不同的方法中,它调用了那个新的构造函数。我这样做是因为它使测试结构上的方法变得更容易,因为我现在可以创建一个测试构造函数并将结构成员重新分配给它,然后再调用我正在测试的方法。类似于此处的方法:MockfunctionsinGo虽然现在,我正在尝试在结构构造函数上编写测试用例,但我很难弄清楚如何测试它。这是一个例子:typerequestBuilderfunc(port

unit-testing - 有没有一种简单的方法可以在测试期间全局清除 time.Now() ?

我们的部分代码是时间敏感的,我们需要能够保留一些东西,然后在30-60秒内释放它,我们可以执行time.Sleep(60*time.Second)我刚刚实现了时间接口(interface),在测试期间使用了时间接口(interface)的stub实现,类似于thisgolang-nutsdiscussion.但是,time.Now()在多个站点中被调用,这意味着我们需要传递一个变量来跟踪我们实际睡了多少时间。我想知道是否有另一种方法可以在全局范围内清除time.Now()。也许进行系统调用以更改系统时钟?也许我们可以编写自己的时间包,它基本上环绕时间包但允许我们更改它?我们目前的实现效

go build 有效但 go test 没有

下面是我的项目结构:/user/home/go/src/github.com/my_go_proj/main.go/mypackage/service.go/service_test.goGOPATHpointsto/user/home/gocd/user/home/go/src/github.com/my_go_projgobuild--->Thisworksandcreatesthe`my_go_proj`executable.gotest?github.com/my_go_proj[notestfiles]gotestgithub.com/my_go_proj/mypackage

c - 不在 cgo 中显示 printf 结果

当我运行这段代码时,我希望打印出类似A:4,B:89的结果。但实际上,不显示任何内容。为什么这个程序不将结果显示到标准输出?main.go:packagemain/*#include"c.h"*/import"C"import("unsafe")typeSstruct{AintBint}funcmain(){s:=&S{A:4,B:89}pass_to_c:=(*C.S)(unsafe.Pointer(s))C.gostruct(pass_to_c)}c.h#include#includetypedefstruct{longintA;longintB;}S;externvoidgost

unit-testing - 我如何在测试中模拟 Go 函数?

我在StackOverflow上阅读了一些关于如何模拟time.Now()等函数的问题。解决方案似乎是编写一个实现特定接口(interface)的结构,然后在测试中传入该模拟。有更好的方法吗?由于在Golang中没有足够好的依赖注入(inject)容器实现,我不想手动传递结构,或者创建一个内部只有这样的结构:func(sMyStruct)Now(){returntime.Now()}因为,首先,我无法测试这个函数。当你处理其中没有变量的一行时,它可能什么都不是,但我有一个连接到TCP端口的函数。做这样的事情需要我为它使用的所有东西创建适配器(例如net.Dial()、time.Now(

unit-testing - 在 GO 中测试 - 项目包中的代码覆盖率

我有一个关于在Go(lang)项目中生成代码覆盖率的问题。我有这个简单的结构:ROOT/config/handlers/lib/models/router/main.goconfig包含JSON格式的配置和一个简单的config.go读取和解析JSON文件并填充随后使用的Config结构初始化数据库连接时。handlers包含controllers(即router/routes.go中描述的相应METHOD+URL的处理程序)。lib包含一些数据库、请求响应器和记录器逻辑。models包含要从JSON和DB映射到的结构及其函数。最后router包含路由器和路由定义。基本上只是通过测试一

GO GORM .Related() 构造不适用于非默认主键名称。

使用“默认”主键命名约定时:POSTGRES表CREATETABLEperson(idSERIAL,namevarchar(255)NOTNULL,CONSTRAINTperson_pkPRIMARYKEY(id))CREATETABLEemail(idSERIAL,person_idintNOTNULLREFERENCESperson(id),CONSTRAINTemail_pkPRIMARYKEY(id))根据示例,此.Related()构造工作正常:typePersonstruct{IDintNamestringEmails[]Email}typeEmailstruct{IDin

unit-testing - 如何在 Go 中将测试标记为不确定?

这个问题在这里已经有了答案:HowToWritePendingTestsInGo(1个回答)关闭6年前。在Go中编写测试时,如何将测试标记为不确定,即存在,但既不成功也不失败,例如因为它还没有实现?我有Node.js背景,例如在Mocha(Node.js的测试运行器)中,您可以定义一个没有实现的测试,然后Mocha将此测试标记为pending。你如何用Go做到这一点?(如果有任何区别,我在gotest之上使用gocheck。)

c - 像 OpenMP 这样的 golang 中有一个简单的 `parallel for` 吗?

我正在尝试使用并行处理优化拼图,以获得更好的性能。理想情况下,在带有OpenMP的C99中,我应该能够在有问题的for循环之前借助#pragmaompparallelfor来做到这一点,然后应该由系统在CPU之间分配负载。Go的官方文档位于https://golang.org/doc/effective_go.html#parallel,但是,似乎表明对于并行处理,我必须,(0),手动从运行时环境中获取内核数量,(1),遍历所述内核,(2),有效地为每个内核编写一个不同的for循环核心,(3),再次遍历核心以确保所有内容都得到处理。我错过了什么吗?对于最简单的情况,使用古老C的Open